Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.8.30
|
Leadtools.Codecs Namespace > RasterCodecs Class > EncodeAbic Method : EncodeAbic(Byte[],Int32,Int32,Int32,Boolean) Method |
'Declaration
Public Overloads Function EncodeAbic( _ ByVal inputData() As Byte, _ ByVal align As Integer, _ ByVal width As Integer, _ ByVal height As Integer, _ ByVal biLevel As Boolean _ ) As Byte()
'Usage
Dim instance As RasterCodecs Dim inputData() As Byte Dim align As Integer Dim width As Integer Dim height As Integer Dim biLevel As Boolean Dim value() As Byte value = instance.EncodeAbic(inputData, align, width, height, biLevel)
public byte[] encodeAbic(byte[] inputData, int align, int width, int height, boolean biLevel)
Call this method to compress the input raw data to 1-bit bi-level or 4-bit grayscale ABIC data.
Use DecodeAbic to decode ABIC data.
This example will load a file and encode as as ABIC. Decodes the data again before saving it to a destination file
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Imports Leadtools.ImageProcessing.Color Imports Leadtools.Drawing Imports Leadtools.Svg Public Sub EncodeDecodeAbicExample() Dim codecs As RasterCodecs = New RasterCodecs() Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp") Dim destDataFile As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Abic.bmp") ' Load the file save it to a memory stream as RAW Console.WriteLine("Loading the source image as 1 bits/pixel") Dim srcImage As RasterImage = codecs.Load(srcFileName, 1, CodecsLoadByteOrder.Rgb, 1, 1) Console.WriteLine("Saving the image to memory as RAW format") Dim ms As MemoryStream = New MemoryStream() codecs.Save(srcImage, ms, RasterImageFormat.Raw, srcImage.BitsPerPixel) Console.WriteLine("Encoding the data as ABIC") Dim rawData As Byte() = ms.GetBuffer() ms.Close() ' Encode this data as ABIC Dim abicData As Byte() = codecs.EncodeAbic(rawData, 4, srcImage.Width, srcImage.Height, False) ' Decode the data back to RAW Console.WriteLine("Deconding the data back as RAW") rawData = codecs.DecodeAbic(abicData, 4, srcImage.Width, srcImage.Height, False) ' Create a new image from this data Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, srcImage.BitsPerPixel, srcImage.Order, srcImage.ViewPerspective, srcImage.GetPalette(), IntPtr.Zero, 0) ' Add the scan lines Dim y As Integer = 0 Do While y < destImage.Height Dim bufferIndex As Integer = y * destImage.BytesPerLine destImage.SetRow(y, rawData, bufferIndex, destImage.BytesPerLine) y += 1 Loop ' Save this image to disk codecs.Save(destImage, destDataFile, RasterImageFormat.Bmp, destImage.BitsPerPixel) srcImage.Dispose() destImage.Dispose() ' Clean up codecs.Dispose() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; using Leadtools.ImageProcessing.Color; using Leadtools.Svg; public void EncodeDecodeAbicExample() { RasterCodecs codecs = new RasterCodecs(); string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); string destDataFile = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Abic.bmp"); // Load the file save it to a memory stream as RAW Console.WriteLine("Loading the source image as 1 bits/pixel"); RasterImage srcImage = codecs.Load(srcFileName, 1, CodecsLoadByteOrder.Rgb, 1, 1); Console.WriteLine("Saving the image to memory as RAW format"); MemoryStream ms = new MemoryStream(); codecs.Save(srcImage, ms, RasterImageFormat.Raw, srcImage.BitsPerPixel); Console.WriteLine("Encoding the data as ABIC"); byte[] rawData = ms.GetBuffer(); ms.Close(); // Encode this data as ABIC byte[] abicData = codecs.EncodeAbic(rawData, 4, srcImage.Width, srcImage.Height, false); // Decode the data back to RAW Console.WriteLine("Deconding the data back as RAW"); rawData = codecs.DecodeAbic(abicData, 4, srcImage.Width, srcImage.Height, false); // Create a new image from this data RasterImage destImage = new RasterImage( RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, srcImage.BitsPerPixel, srcImage.Order, srcImage.ViewPerspective, srcImage.GetPalette(), IntPtr.Zero, 0); // Add the scan lines for (int y = 0; y < destImage.Height; y++) { int bufferIndex = y * destImage.BytesPerLine; destImage.SetRow(y, rawData, bufferIndex, destImage.BytesPerLine); } // Save this image to disk codecs.Save(destImage, destDataFile, RasterImageFormat.Bmp, destImage.BitsPerPixel); srcImage.Dispose(); destImage.Dispose(); // Clean up codecs.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }